The functionality of typical e-commerce applications is distributed over several tiers serving different purposes, like a business logic tier, a presentation tier or a database tier. Those tiers may be deployed to different servers or server clusters to enable scalability of the applications.
Large scaled organizations operate hundreds of such e-commerce applications, which may be distributed over thousands of different servers. The management and maintenance of such systems is a highly complex and difficult task, due to the large number of different server systems.
The configuration and management of an agent deployment system capable for such large scaled systems must be lightweight and less intrusive to the configuration of the applications the agents are deployed to. Alterations of application configuration required for agent deployment must be reduced to a minimum, and an easy and convenient way to manage and update the deployed agents must be provided.
Bytecode and virtual machine based systems like SUN MICROSYSTEMS' JAVA system or MICROSOFT's .NET system provide interfaces enabling the injection of agents into the process of bytecode interpreting virtual machines. Current agent deployment approaches for said virtual machine based systems adapt the configuration of the application by adding additional bytecode libraries to the bytecode libraries loaded by the application. Some approaches replace runtime libraries of the virtual machine hosting the application. Most approaches require to copy also configuration data, e.g. in form of XML-Config files locally to the server that hosts the application. Additionally, most current approaches require copying of multiple files locally to the server.
Consequently, an alternative system for agent deployment is required, which minimizes required configuration changes, and preferably only impacts the configuration of the virtual machine, leaving the configuration of the application unchanged. Additionally, the alternative system should not require copying bytecode libraries manually to servers hosting the application. The possibility to manage, update or upgrade the deployed agent from a remote, centralized management server should be provided.